\chapter{Loader Editor : Module d'édition du fichier Loader}\label{ch:loader}

%\section
%\subsection
%\subsubsection
%\paragraph{Import à partir d'un fichier}

Certains éléments sont régulièrement présents au sein du fichier de Loader tel que les balises \textit{transformer} et  \textit{fact}, ceux-ci ont été implémentés en priorité et sont des exemples de possibiltiés du système. Nous allons donc présenter l'organisation du \textit{Loader Editor} telle que présentée dans la figure \ref{loaderUml}.

\section{Racine : InterpretorRoot}

La balise \textit{root} définit par PRISME est une balise englobante n'offrant pas de fonctionnalités particulières. Elle permet néanmoins de regrouper tous les éléments sous celle-ci et donc d'avoir un point "fixe" de manipulation. Elle a également la particularité de ne pas afficher de panneau de configuration puisque l'on a rien à configurer.

\section{Fact : InterpretorFact}

L'outil \textit{Fact} définit l'ingestion des données extraites de nos fichiers de log vers la base de données. Il reprend les différentes colonnes extraites préalablement et se propose de changer leur nom, de les transformer en "dimension", de définir le type sql, \ldots

\section{Transformer : InterpretorTransformer}

Cette classe gère l'ensemble des fonctionnalités offertes à ces fils, elle permet particulièrement de créer dynamiquement la classe de transformer spécifié par l'attribut \textit{type}. Cette classe vient également fournir un cadre à nos interfaces de configuration de \textit{transformer}. A noter, l'arborescence de nos transformers est corrélée à celle utilisée au sein de PRISME.

 Pour créer une classe gérant un nouveau type de transformer, celle-ci devra être nommée comme suit : 
\[
	Name = InterpretorTransformer + Type
\]

\section{Transformer simple : InterpretorTransformerAbstractLineReader}

On peut ici gérer l'ensemble des transformers simples (par exemple TransformerCsv, TransformerRegex, \ldots). Cette classe fournit en particulier l'interface des entrées et sorties de notre transformer.

\section{Interpreteurs par défaut}

L'interpréteur par défaut est celui définit par notre TreeView modèle (chapitre \ref{ch:treeviewModel}). On dispose donc d'un éditeur de texte classique pour les balises non définies.

\begin{figure}
\centering
\includegraphics[scale=0.7]{../img/loaderInterpretor.png}
\caption{Diagramme de classe du l'outil Grabber}
\label{loaderUml}
\end{figure}